#ifndef CIRCLELIST_H
#define CIRCLELIST_H


//对外暴露
typedef struct _tag_CircleListNode CircleListNode;
typedef void CircleList;


struct _tag_CircleListNode{
    CircleListNode* next;
};



CircleList* CircleList_Create();
void CircleList_Destroy(CircleList* list);
void CircleList_Clear(CircleList* list);
int CircleList_Insert(CircleList* list,CircleListNode *node,int pos);
int CircleList_Length(CircleList* list);
CircleListNode* CircleList_Get(CircleList* list,int pos);
CircleListNode* CircleList_Delete(CircleList* list,int pos);

CircleListNode* CircleList_Reset(CircleList* list);
CircleListNode* CircleList_Current(CircleList* list);
CircleListNode* CircleList_Next(CircleList* list);
CircleListNode* CircleList_DeleteNode(CircleList* list,CircleListNode *node);


#endif // CIRCLELIST_H
